✅ 一、确保已经具备的环境
工具/组件 | 检查方式 |
---|---|
✅ Flutter SDK | flutter --version |
✅ Dart 插件(VS Code) | VS Code 插件区搜索 “Dart” |
✅ Flutter 插件(VS Code) | VS Code 插件区搜索 “Flutter” |
✅ Android SDK | Android Studio 安装时默认附带 |
✅ AVD 模拟器或真机 | flutter devices 能检测到设备 |
✅ 正确初始化的工程 | pubspec.yaml 存在 flutter: 字段 |
✅ 二、运行调试命令(VS Code)
🎯 推荐方式(图形化):
打开
main.dart
文件(位于lib/
下)点击右上角的 ▶️(Run)按钮,或按下快捷键:
1
2F5 (调试模式运行)
Ctrl + F5(直接运行)
🎯 命令行方式:
1 | # Android 模拟器/真机 |
查看所有可用设备:
1 | flutter devices |
✅ 三、常见调试目标说明
目标平台 | 运行方式 | 注意事项 |
---|---|---|
Android | flutter run (需设备或模拟器) |
模拟器需先开启 |
iOS | flutter run -d ios |
仅限 macOS,需 Xcode 支持 |
Web(Chrome) | flutter run -d chrome |
需先启用 Web 支持 |
多平台调试 | 选择 VS Code 左下角的设备栏切换设备 | 适合测试 Tab 和 WebView 兼容性 |
✅ 四、调试 Vue3 HTML Tab 的特殊配置(如果在 Flutter 中用 WebView 加载 Vue3)
如果运行的 Flutter 工程中嵌入了 Vue 页面(WebView),确保以下:
1. WebView 权限(Android)
在 android/app/src/main/AndroidManifest.xml
中添加:
1 | <uses-permission android:name="android.permission.INTERNET"/> |
2. iOS 权限(可选)
在 ios/Runner/Info.plist
中添加:
1 | <key>NSAppTransportSecurity</key> |
✅ 五、调试技巧与建议
技巧 | 快捷键 / 命令 |
---|---|
打断点调试(VS Code) | 在代码左侧点红点,按 F5 |
热重载(保持状态) | r (终端)或点击雷电图标 |
热重启(重新构建) | R (终端)或点击 ↻ 图标 |
查看日志输出 | VS Code 终端 / Debug Console |
显示 UI 帧率 / 性能监控 | 添加 showPerformanceOverlay: true 到 MaterialApp |
✅ 终极调试 checklist(排错利器)
运行以下命令:
1 | flutter doctor -v |
查看所有环境是否都已就绪。出现 !
或 ✗
的部分需要重点修复(比如缺设备、SDK 路径错误、模拟器未运行等)。
✅ Bonus:添加调试配置 launch.json(可选)
在 .vscode/launch.json
中添加:
1 | { |
这样可以通过 F5
快速调试而无需手动选择设备。
贴出的 flutter doctor
输出显示有几项关键问题和一些可忽略项,我来逐条分析并给清晰的修复建议:
🔴 ❶ Android SDK 缺失 android-36 平台
1 | X Android SDK file not found: D:\android_sdk\platforms\android-36\android.jar |
💡 问题原因:
当前的 Flutter 项目或 IDE 使用了 Android 36(API 36),但这个 SDK 没有安装或不完整。
✅ 解决方法:
方法 A:安装 Android 36(推荐)
打开 Android Studio → SDK Manager
:
- 点击菜单栏:
Tools → SDK Manager
- 切换到
SDK Platforms
选项卡 - 勾选 Android 14 (API Level 34) 或 Android 15 Preview / 36
- 点击 Apply → 安装
如果找不到 API 36,可以用命令行安装:
1 | sdkmanager "platforms;android-36" |
⚠️ 如果 Android 36 是预览版不稳定,建议改用 Android 33 或 34。
方法 B:修改 compileSdkVersion
降级到 33 或 34
如果不想用 Android 36,可以手动更改 Flutter 项目的构建版本:
- 打开
android/app/build.gradle
- 找到以下配置:
1 | compileSdkVersion 36 |
改成:
1 | compileSdkVersion 33 |
- 同时确认
targetSdkVersion
与minSdkVersion
合理设置,例如:
1 | defaultConfig { |
- 保存后重新运行:
1 | flutter clean |
🟠 ❷ 网络资源错误:信号灯超时
1 | X A network error occurred while checking "https://pub.dev/" |
💡 问题原因:
Flutter 连接不上 pub.dev 和 maven.google.com,常见于:
- 国内网络被墙
- 无代理 / VPN
- 公司网络限制
✅ 解决方法:
方法 A:配置国内镜像
1. Flutter 包镜像设置:
创建或修改文件:
1 | C:\Users\<的用户名>\.flutter_settings |
添加内容:
1 | PUB_HOSTED_URL=https://pub.flutter-io.cn |
2. 临时设置(命令行)
1 | set PUB_HOSTED_URL=https://pub.flutter-io.cn |
3. Maven 镜像设置(for Android)
修改 android/build.gradle
:
1 | allprojects { |
🟡 ❸ Visual Studio 缺失(可忽略,除非开发 Windows 桌面 app)
1 | X Visual Studio not installed; this is necessary to develop Windows apps. |
✅ 如果只做 Android / Web 开发:可忽略此项
✅ 如果想开发 Windows 桌面应用:
下载 Visual Studio:
https://visualstudio.microsoft.com/downloads/勾选 Desktop development with C++
安装后重新运行flutter doctor
🟢 其余都是正常状态:
- ✅ Android Studio 正常
- ✅ VS Code 正常
- ✅ 有 3 个连接设备(模拟器或真机)
- ✅ Flutter SDK 可用
✅ 最终操作建议顺序
1 | # 1. 降低或安装 Android SDK 36 |
这段 build.gradle.kts
(Kotlin DSL) 是 Flutter Android 项目中的配置文件,用于设置 Android 原生层的构建参数,配合 Flutter 插件运行。这表示创建的是一个 Flutter 与 Kotlin 混合项目。
✅ 配置解读说明(适用于 Flutter 多平台开发)
🔧 plugins
部分
1 | plugins { |
- 顺序很重要:Flutter 插件必须在
com.android.application
和kotlin-android
后加载。 - 使用 Kotlin DSL 而不是 Groovy 是 Android Studio 最新推荐方式。
⚙️ android
配置详解
1 | android { |
namespace
:Android 包名,实际用于 AndroidManifest。compileSdk
、ndkVersion
:从 Flutter 定义中读取,通常无需手动设置。
📱 defaultConfig
1 | defaultConfig { |
- 这些值是 Flutter 工具链自动注入的,保持一致性。
- 可以修改
applicationId
来设定最终 Android 应用的唯一标识。
🔐 buildTypes
1 | buildTypes { |
- 这里
release
使用了debug
签名,是 Flutter 默认的调试构建方式。如果要上传到 Google Play,需自定义 release 签名。
🧩 flutter
块
1 | flutter { |
- 表明 Flutter 源代码主目录在哪里,通常在 Android 子项目之外。
🚀 如何调试运行这个 Flutter 工程?
1. 使用 VS Code 调试步骤:
- 打开
flutter
项目根目录(不是android
子目录)。 - 确保
flutter doctor
通过(特别是 SDK、AVD)。 - 连接真机或启动虚拟设备。
- 打开 VS Code → 左侧 ▶️图标 → Run → “Flutter: Launch Android emulator”。
- F5 或运行
Flutter: Run
命令。
2. Android Studio 调试:
- 打开整个 Flutter 工程。
- 顶部下拉选择运行目标设备。
- 点击
Run
图标。
🧱 如何开发 App Shell + 动态加载 Vue3 HTML?
如果想在 Flutter 中加载 HTML5/Vue3 页面作为“Tab 内容”,可以通过以下方式:
✅ 步骤一:构建 Flutter 壳(App Shell)
用 Flutter 的 Scaffold + BottomNavigationBar
创建基本壳:
1 | Scaffold( |
✅ 步骤二:加载 Vue 页面(通过 WebView)
使用 webview_flutter
插件,加载本地或远程 Vue3 页面:
1 | WebView( |
- 可以将 Vue3 应用打包成静态文件,部署到本地服务器或嵌入到 Flutter 中(如 assets/web 下)。
- 使用
flutter_inappwebview
可获得更强的功能控制(如 JS 通信)。
✅ 步骤三:支持动态 Tab(Tab 可增删)
可以用 List<Widget>
来管理动态 tabs:
1 | List<Widget> _tabs = [TabA(), TabB(), WebViewTab(url: '...')]; |
- 可以通过配置文件或远程 JSON 动态创建 tab 内容和加载的 Vue 页面。
- 可以实现如下结构:
1 | [ |
在 Flutter 中解析这个配置,动态构建 tab 列表和内容组件。
🧠 总结
项目 | 配置说明/操作 |
---|---|
Flutter App Shell | 使用 Scaffold + BottomNavigationBar |
加载 Vue3 页面 | 使用 webview_flutter 插件 |
动态加载 Tab 页面 | 从 JSON 或接口动态创建 tab + widget |
Android 构建配置 | 提供的 build.gradle.kts 是标准配置 |
调试运行 | VS Code F5 / Android Studio ▶️按钮 |
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏